vlakna a COM-y
Otázka od: Miso
24. 11. 2004 16:03
Zdar !
..vo vlakne (v metode Execute) chcem creatnut nejaky COM, ale bohuzial mi to
pada..neviete niekto o nejakej carovnej formulke?
Dik,
Miso
Odpovedá: Radim Kunz
24. 11. 2004 16:18
Miso napsal(a):
>Zdar !
>
>..vo vlakne (v metode Execute) chcem creatnut nejaky COM, ale bohuzial mi to
>pada..neviete niekto o nejakej carovnej formulke?
>
>Dik,
>Miso
>
>
>
>
Carovna formulka zni: CoInitialize. Pokud chces pouzivat COM ve vlaknu,
musis na zacatku
zavolat CoInitialize a na konci CoUnitialize
Radim
Odpovedá: Tomas Bihary
24. 11. 2004 16:12
zkus pred vytvarenim zavolat CoInitialize() nebo CoInitializeEx()
Tomas Bihary
> -----Original Message-----
> Zdar !
>
> ..vo vlakne (v metode Execute) chcem creatnut nejaky COM, ale
> bohuzial mi to
> pada..neviete niekto o nejakej carovnej formulke?
>
> Dik,
> Miso
>
>
>
Odpovedá: Miso
25. 11. 2004 9:30
----- Original Message -----
From: "Radim Kunz" <rkunz@casestudio.com>
> >..vo vlakne (v metode Execute) chcem creatnut nejaky COM, ale bohuzial mi
to
> >pada..neviete niekto o nejakej carovnej formulke?
> >
> >
> Carovna formulka zni: CoInitialize. Pokud chces pouzivat COM ve vlaknu,
> musis na zacatku
> zavolat CoInitialize a na konci CoUnitialize
..CoInitialize sa musi volat pred kazdym creatovanim nejakeho COM-u alebo
staci len raz?..ked som ho zavolal len raz, tak mi to pri asi 10-tich
COM-och islo ok, ale pri 1 to spadne na DAX Error - Catastrophic
failure...netusi niekto, cim to moze byt?
Dik,
M.
Odpovedá: Radim Kunz
25. 11. 2004 10:06
----- Original Message -----
From: "Miso" <delphinpp@atlas.cz>
To: <delphi-l@clexpert.cz>
Sent: Thursday, November 25, 2004 9:30 AM
Subject: Re: vlakna a COM-y
>
> ----- Original Message -----
> From: "Radim Kunz" <rkunz@casestudio.com>
>
>> >..vo vlakne (v metode Execute) chcem creatnut nejaky COM, ale bohuzial
>> >mi
> to
>> >pada..neviete niekto o nejakej carovnej formulke?
>> >
>> >
>> Carovna formulka zni: CoInitialize. Pokud chces pouzivat COM ve vlaknu,
>> musis na zacatku
>> zavolat CoInitialize a na konci CoUnitialize
>
> ..CoInitialize sa musi volat pred kazdym creatovanim nejakeho COM-u alebo
> staci len raz?..ked som ho zavolal len raz, tak mi to pri asi 10-tich
> COM-och islo ok, ale pri 1 to spadne na DAX Error - Catastrophic
> failure...netusi niekto, cim to moze byt?
>
> Dik,
> M.
>
CoInitialize bys mel volat na zacatku behu vlakna v TThread.Execute
a CoUninitialize na konci Execute. Pokud pouzivas COM, tak to Delphi
zavola automaticky diky tomu, zepouzijes nejakou unitu, ale jen v
primarnim vlaknu, ve vsech dalsich vlaknech ho musis zavolat pro kazde
vlakno sam.
Radim